package com.qinggeng.project.system.service;

import com.qinggeng.project.system.domain.OrdersGift;
import com.qinggeng.project.system.domain.OrdersGoods;
import com.qinggeng.project.system.domain.SinglePointSale;
import com.qinggeng.project.system.domain.SumPointSale;
import com.qinggeng.project.system.domain.vo.SumPointSaleVo;

import java.util.List;

/**
 * @author 吴鹏飞
 * @date 2020/11/17
 * 配送区域总自提点销量统计业务
 */
public interface SumPointSaleService {

    /**
     * 查询配送区域总自提点销量
     *
     * @param id 配送区域总自提点销量ID
     * @return 配送区域总自提点销量
     */
    public SumPointSale getSumPointSaleById(Long id);

    SumPointSale getSumPointSaleByAreaNameAndGoodsIdAndRecordDate(String areaName,Long goodsId,String recordDate);

    SumPointSale getSumPointSaleByAreaNameAndGiftIdAndRecordDate(String areaName,Long giftId,String recordDate);

    boolean addSumPointSaleNum(Long id,Integer saleNum);

    boolean subtractSumPointSaleNum(Long id,Integer saleNum);

    /**
     * 查询配送区域总自提点销量列表
     *
     * @param sumPointSale 配送区域总自提点销量
     * @return 配送区域总自提点销量集合
     */
    public List<SumPointSale> listSumPointSale(SumPointSale sumPointSale);

    /**
     * 新增配送区域总自提点销量
     *
     * @param sumPointSale 配送区域总自提点销量
     * @return 结果
     */
    public int insertSumPointSale(SumPointSale sumPointSale);

    /**
     * 更新区域商品销量
     * @param
     * @param ordersGoods
     * @param recordDate
     */
    void updateSumPointSale(String sortArea, OrdersGoods ordersGoods, String recordDate);

    /**
     * 更新区域奖品销量
     * @param areaName
     * @param ordersGift
     * @param recordDate
     */
    void updateSumPointSale(String areaName, OrdersGift ordersGift, String recordDate);



    /**
     * 修改配送区域总自提点销量
     *
     * @param sumPointSale 配送区域总自提点销量
     * @return 结果
     */
    public int updateSumPointSale(SumPointSale sumPointSale);

    /**
     * 删除配送区域总自提点销量
     *
     * @param id 配送区域总自提点销量ID
     * @return 结果
     */
    public int deleteSumPointSaleById(Long id);

    /**
     * 批量删除配送区域总自提点销量
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteSumPointSaleByIds(Long[] ids);

    /**
     * 查询区域自提点销量
     * @return
     */
    List<SumPointSaleVo> listSumPointSaleByYesterday(String sortArea,String  recordDate);

    /**
     * 打印区域
     * @param sortArea
     */
    void printSumPointSaleList(String sortArea);

    SumPointSale selectSumlePointSaleRecordById(Long id);

    boolean updatePrintStatusById(String id);
}
